Model Checking and Delta Debugging for Automated Fault Localization; A Tutorial
نویسنده
چکیده
Debugging programs is a complicated and cumbersome task. It is an iterative process which includes hypothesizing the cause of a failure and validating the hypothesis. Since programs comprise of many components with complex interactions this chain often involves several trials. Fault localization (FL) is the task of identifying components that are likely to cause the failure. Automated fault localization techniques aim to accelerate the debugging process by guiding developers to a small portion of the program that is likely to be culpable for the program failures. In essence, they reduce the search space programmers need to inspect manually to locate the fault. There are several different approaches to fault localization. In this paper, we study two approaches: delta debugging, and model checking. Delta debugging framework offers techniques for simplification of test cases and isolation of failure-inducing parts from test cases, which help in debugging and can be adapted for fault localization. Delta debugging requires minimal knowledge about the structure of the program and specification. In this paper, we explain delta debugging algorithms and how it could be adapted for fault localization. Model checking is the problem of checking whether a model (e.g. program) satisfies a property. Model checking needs to know the internal structure of the programs that it works on. Since it can answer different queries about the execution path of the program, it can be employed for fault localization. In this paper, we study a couple of techniques that have been implemented in model checkers for fault localization.
منابع مشابه
FAuST: A Framework for Formal Verification, Automated Debugging, and Software Test Generation
We present FAuST, an extensible framework for Formal verification, Automated debugging, and Software Test generation. Our framework uses a highly customizeable Bounded Model Checking (BMC) algorithm for formal reasoning about software programs and provides different applications, e.g., property checking, functional equivalence checking, test case generation, and fault localization. FAuST suppor...
متن کاملTowards a Model for Automated Fault Localization in VHDL Designs: Exploring Counterexample-Traces Using a Model-Based Diagnosis Approach
In this paper we discuss the exploration of a model checker’s counterexample trace using model-based debugging techniques. We show that a diagnosis model obtained from a single counterexample run in an event-driven simulation is not appropriate for localizing a failures real cause in general. Notably, modeling VHDL’s event and process semantics as originally defined hampers the integration of t...
متن کاملFault Prediction , Localization , and Repair
This report documents the program and the outcomes of Dagstuhl Seminar 13061 “Fault Prediction, Localization, and Repair”. Software debugging, which involves localizing, understanding, and removing the cause of a failure, is a notoriously difficult, extremely time consuming, and human-intensive activity. For this reason, researchers have invested a great deal of effort in developing automated t...
متن کاملComplexity , Linear Optimization , and lower bounds for the nonnegative rank of matrices ( Dagstuhl Seminar 13082 )
This report documents the program and the outcomes of Dagstuhl Seminar 13061 “Fault Prediction, Localization, and Repair”. Software debugging, which involves localizing, understanding, and removing the cause of a failure, is a notoriously difficult, extremely time consuming, and human-intensive activity. For this reason, researchers have invested a great deal of effort in developing automated t...
متن کاملAutomated Fault Localization Techniques; A Survey
Fault localization is a task in software debugging to identify the set of statements in a program that cause the program to fail. As size and complexity of software grows,and the more developers participate in debugging, fault localization becomes harder than before. Automated fault localization techniques aim to facilitate this task by guiding the developers to a small portion of program that ...
متن کامل